package com.thrc.borrow.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class WeichatRequestUtil {
	
	private static Logger log = LoggerFactory.getLogger(WeichatRequestUtil.class);
	
    public static boolean checkSignature(HttpServletRequest req, String token){
        String signature=req.getParameter("signature");
        String timestamp=req.getParameter("timestamp");
        String nonce = req.getParameter("nonce");
        String arr[] = new String[]{timestamp,nonce,token};
        Arrays.sort(arr);
        String encryt = Encrytor.encrytHexBySHA1(arr);
        return encryt.equals(signature);
    }
    
    public static String getPostXMLData(HttpServletRequest req) {
		BufferedReader br = null;
		StringBuffer xmlData = new StringBuffer();
		try {
			String data = StringUtils.EMPTY;
			br = req.getReader();
			while ((data = br.readLine()) != null) {
				xmlData.append(data);
			}
		} catch (Exception e) {
			log.error("read post data error", e);
		} finally {
			if (br != null){
				try {
					br.close();
				} catch (IOException e) {
				}
			}
		}
		return xmlData.toString();
	}

	public static String SendGET(String url){
		String result="";//访问返回结果
		BufferedReader read=null;//读取访问结果

		try {
			//创建url
			URL realurl=new URL(url);
			//打开连接
			URLConnection connection=realurl.openConnection();
			// 设置通用的请求属性
			connection.setRequestProperty("accept", "*/*");
			connection.setRequestProperty("connection", "Keep-Alive");
			connection.setRequestProperty("user-agent",
					"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
			//建立连接
			connection.connect();
			// 获取所有响应头字段
			Map<String, List<String>> map = connection.getHeaderFields();
			// 遍历所有的响应头字段，获取到cookies等
			/*for (String key : map.keySet()) {
				System.out.println(key + "--->" + map.get(key));
			}*/
			// 定义 BufferedReader输入流来读取URL的响应
			read = new BufferedReader(new InputStreamReader(
					connection.getInputStream(),"UTF-8"));
			String line;//循环读取
			while ((line = read.readLine()) != null) {
				result += line;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(read!=null){//关闭流
				try {
					read.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		return result;
	}
}
